使用Packages升级到CDH 5.10

使用Packages升级到CDH 5.10

v1.0 updated:2017-03-22 Nameless13
角色最低要求:Cluster Administrator

步骤1:收集升级信息

开始升级之前,请收集以下信息:

  1. 主机凭据。您必须具有SSH访问权限,并且能够使用root帐户或具有无密码sudo权限的帐户登录。
  2. 集群中使用的Cloudera Manager版本。转到支持 > 关于。( Cloudera Enterprise 5.4.7)
  3. 在集群中部署的JDK的版本。转到支持 > 关于。(Java 版本: 1.7.0_67)
  4. CDH的版本。CDH版本号显示在主页上的集群名称旁边。(CDH 5.10.0, Parcel)
  5. 群集是使用Parcels或packages安装的。此信息显示在Cloudera Manager 主页上的CDH版本旁边。
  6. 集群中启用的服务。转到 Clusters > Cluster name。
  7. 操作系统类型和版本。转到主机并单击列表中的主机名。操作系统类型和版本显示在“ 详细信息”部分的“ 分发”行中。
  8. Sqoop,Oozie,Hue,Hive Metastore和Sentry Server使用的数据库的数据库信息(仅在集群中启用这些服务时才需要信息)。
  9. 收集以下信息:
    • 数据库类型(PostgreSQL,嵌入式PostgreSQL,MySQL,MariaDB或Oracle)
    • 数据库的主机名
    • 数据库的Credentials

如何查找数据库信息:

  • Sqoop,Oozie和Hue - 转到群集名称 > 配置 > 数据库设置。
  • Hive Metastore - 转到Hive服务,选择配置,然后选择Hive Metastore Database类别。
  • Sentry - 转到Sentry服务,选择配置,然后选择Sentry服务器数据库类别。

步骤2:完成升级前步骤

  1. 查看要升级到的新版本的CDH 5和Cloudera Manager 5要求和支持的版本。
  2. 阅读CDH 5发行说明。
  3. 阅读Cloudera安全公告。
  4. 确保跨集群安装了Java 1.7或1.8。有关安装说明和建议,请参阅在Cloudera Manager部署中升级到Oracle JDK 1.7或升级到Oracle JDK 1.8,并确保在继续升级之前已阅读Cloudera Manager 5中的已知问题和解决方法。
  5. 确保Cloudera Manager次要版本等于或大于 CDH次要版本。例如:

    • 目标CDH版本: 5.0.5
      最低Cloudera Manager版本: 5.0.x

    • 目标CDH版本: 5.8.2
      最低Cloudera Manager版本: 5.8.x

  6. 如果要从CDH 5.1或更低版本升级,并使用 Hive Date partition columns,则可能需要更新日期格式。请参阅日期分区列。

  7. 如果集群使用Impala,请检查您的SQL与<a href="https://www.cloudera.com/documentation/enterprise/latest/topics/impala_incompatible_changes.html#incompatible_changes">不兼容更改文档</a>中列出的最新保留字冲突。如果在多个版本之间升级或出现任何问题,请检查Impala关键字的完整列表。
  8. 运行主机检查器并解决每个问题。转到Cluster > Inspect Hosts。
  9. 运行安全检查器,修复错误报告。(转到 Administration > Security,然后单击Security Inspector。)
  10. 以hdfs用户身份登录到任何集群节点,运行以下命令,并更正所有的错误报告
    hdfs fsck /
    注意:在fsck 命令可能需要10分钟或更长时间才能完成,具体取决于集群中的文件数。
    hdfs dfsadmin -report
  11. 以hdfs用户身份登录到任何DataNode,运行以下命令,并更正任何报告的错误
    hbase hbck
  12. 查看升级过程并保留分配足够时间以执行所有步骤的维护窗口。对于生产集群,Cloudera建议根据主机数量,使用Hadoop和Linux的经验以及您使用的特定硬件,分配一整天的维护时段来执行升级。
  13. 为了避免在升级过程中出现不必要的警报,请在开始升级之前在集群上启用维护模式。这会停止发送电子邮件警报和SNMP陷阱,但不会停止检查和配置验证。完成升级后,务必退出维护模式以重新启用Cloudera Manager警报。
  14. 如果已将Hue配置为使用TLS / SSL,并且正在从CDH 5.2或更低版本升级到CDH 5.3或更高版本,则Hue会验证CA证书并需要信任库。要创建信任库,请按照Hue中的说明作为TLS / SSL客户端。
  15. 如果群集使用Flume Kafka客户端,并且要升级到CDH 5.8.0或CDH 5.8.1,请在使用Flume Kafka Client时执行升级到CDH 5.8.0或CDH 5.8.1中描述的其他步骤,然后继续与本主题中的程序。
  16. 如果集群使用Impala和Llama,则该角色从CDH 5.9起已被弃用,并且必须在开始升级之前从Impala服务中删除该角色。如果不删除此角色,升级向导将暂停升级。

    要确定Impala是否使用Llama:

    1. 转到Impala服务。
    2. 选择实例选项卡。
    3. 检查“ 角色类型”列中的角色列表。如果出现Llama,Impala服务正在使用Llama。

    要删除Llama角色:

    1. 转到Impala服务,选择操作 > 禁用YARN和Impala集成资源管理。

      将显示“ 禁用YARN和Impala集成资源管理”向导。

    2. 单击继续。

      该禁止纱线和Impala的综合资源管理命令页面显示命令的进度禁用的作用。

    3. 命令完成后,单击完成。

步骤3:停止群集服务

本节中的步骤仅需进行以下升级:

CDH 5.0或5.1至5.2或更高
CDH 5.2或5.3至5.4或更高


  1. 在主页 > 状态选项卡上,单击集群名称的右侧,然后选择停止。
  2. 在确认屏幕中单击停止。“ 命令详细信息 ”窗口显示停止服务的进度。当所有服务成功停止时,任务完成,您可以关闭“ 命令详细信息 ”窗口。

步骤4:备份NameNode上的HDFS元数据

本节中的步骤仅需进行以下升级:

CDH 5.0或5.1至5.2或更高
CDH 5.2或5.3至5.4或更高


  1. 转到HDFS服务。
  2. 单击配置选项卡。
  3. 在搜索字段中,搜索“NameNode Data Directories”并记下该值。
  4. 在活动的NameNode主机上,备份NameNode Data Directories属性中列出的目录。如果列出了多个目录,请备份一个目录,因为每个目录是完整的副本。例如,如果NameNode数据目录是/ data / dfs / nn,请以root身份执行以下操作:

    # cd /data/dfs/nn
    # tar -cvf /root/nn_backup_data.tar .

你应该看到这样的输出:

./
./current/
./current/fsimage
./current/fstime
./current/VERSION
./current/edits
./image/
./image/fsimage

如果NameNode数据目录中存在具有 extension lock的文件,则NameNode很有可能仍在运行。重复这些步骤,从关闭NameNode角色开始。

步骤5:备份数据库

注意:备份数据库需要停止某些服务,这可能会使其在备份期间不可用
备份部署在群集中的以下任何服务的数据库:

服务 在哪里可以找到数据库信息
Sqoop 转到集群 > 集群名称 > Sqoop服务 > 配置并选择数据库类别。
HUE 转到集群 > 集群名称 > Hue服务 > 配置并选择数据库类别。
Oozie 转到群集 > 群集名称 > Oozie服务 > 配置并选择数据库类别。
Cloudera Navigator Audit Server 转到集群 > Cloudera管理服务 > 配置并选择数据库类别。
Cloudera Navigator Metadata Server 转到集群 > Cloudera管理服务 > 配置并选择数据库类别。
Activity Monitor 转到集群 > Cloudera管理服务 > 配置并选择数据库类别。
Reports Manager 转到集群 > Cloudera管理服务 > 配置并选择数据库类别。
Sentry Server 转到群集 > 群集名称 > Sentry服务 > 配置并选择Sentry服务器数据库类别。
Hive Metastore 转到集群 > 集群名称 > Hive服务 > 配置并选择Hive Metastore数据库类别。

备份数据库:

  1. 如果尚未停止,请停止服务:
    1. 在主页 > 状态选项卡上,单击服务名称的右侧,然后选择停止。
    2. 在下一个屏幕中单击停止以确认。当您看到已完成状态时,服务已停止。
  2. 备份数据库。有关每种支持的数据库类型的详细说明,请参阅备份数据库。
  3. 重新启动服务:
    1. 在主页 > 状态选项卡上,单击服务名称的右侧,然后选择开始。
    2. 单击出现在下一屏幕中的开始以确认。当您看到已完成状态时,服务已启动。

步骤6:运行升级向导

  1. 从主页 > 状态选项卡,单击集群名称旁边的并选择升级集群。
    此时将显示升级向导的“ 入门”页面。
  2. 如果显示在packages and parcels 之间选择的选项,请选择 Use Parcels
  3. 在“ 选择CDH版本(Parcels)”字段中,选择CDH版本。如果未列出Parcels,或者要升级到其他版本,请单击“ 修改远程Parcels存储库URL”链接,转到远程Parcels存储库URL的配置页面,并将相应的URL添加到配置。有关输入Parcels存储库的正确URL的信息,请参阅<a href="https://www.cloudera.com/documentation/enterprise/latest/topics/cm_ig_parcels.html#cmug_topic_7_11_5">Parcel配置设置</a>。单击继续。
  4. 阅读升级前必须完成的步骤的注意事项,完成步骤后单击 Yes, I …复选框,然后单击继续。Cloudera Manager验证主机是否安装了正确的软件。
  5. 单击继续。 Host Inspector运行并在主机上显示CDH版本。
  6. 单击继续。 “ Choose Upgrade Procedure”屏幕显示可用的升级类型:

    • Full Cluster Restart - Cloudera Manager执行所有服务升级并重新启动集群。
    • Manual upgrade Cloudera Manager将群集配置为指定的CDH版本,但不执行任何升级或服务重新启动。手动升级很困难,只适用于高级用户。要执行手动升级:
      1. 选中”Let me upgrade the cluster”复选框。
      2. 单击继续。
      3. 有关所需的步骤,请参阅手动执行升级向导操作。
  7. 选择Full Cluster Restart

  8. 单击继续。
    “Upgrade Cluster Command”屏幕显示向导在关闭所有服务,激活新Parcels,升级服务,部署客户端配置文件和重新启动服务时运行的命令的结果。如果任何步骤失败,请更正所有错误报告,然后单击重试按钮。如果单击“ 中止 ”按钮,则将启用右上方的“ 重试 ”按钮。

    单击重试以重试该步骤并继续向导,或单击Cloudera Manager徽标返回Home > Status选项卡,然后手动执行失败的步骤和所有后续步骤。

  9. 单击继续。

    向导将报告升级的结果。

    如果先前使用packages安装或升级了集群,向导可能会指示某些服务无法启动,因为其Parcels不可用。要下载所需的Parcels:

    1. 在另一个浏览器选项卡中,打开Cloudera Manager Admin Console。
    1. 选择 Hosts  > Parcels。
    1. 找到包含缺少的Parcels的行,然后单击按钮以下载,Distribute,然后激活Parcels。
    1. 返回升级向导并单击重试按钮。
    1. 升级向导继续升级集群。
    
    
  10. 单击完成返回主页。

步骤7:从失败的步骤恢复或执行手动升级

“手动执行升级向导操作”中列出了升级向导执行的操作。如果“ 升级群集命令”屏幕中的任何步骤失败,请在继续之前完成该部分中所述的步骤。

步骤8:删除以前的CDH版本包和刷新符号链接

如果先前的安装或升级使用Parcels,请跳过此步骤。

如果先前安装的CDH是使用packages完成的,请在安装了packages的所有主机上删除这些packages,并刷新符号链接,以便客户端运行新的软件版本。

  1. 如果您的Hue服务使用嵌入式SQLite数据库,请备份 /var/lib/hue/desktop.db 到 /var/lib/hue以外的位置因为在删除packages时会删除此目录。
  2. 卸载每个主机上的CDHpackages:

    • 不包括Impala和Search
      sudo zypper remove bigtop-utils bigtop-jsvc bigtop-tomcat hue-common sqoop2-client
    • 包括Impala和Search
      sudo zypper remove'bigtop- *'hue-common impala-shell solr-server sqoop2-client hbase-solr-doc avro-libs crunch-doc avro-doc solr-doc
  3. 重新启动所有Cloudera Manager Agent以强制更新符号链接,以指向每个主机上新安装的组件:
    sudo service cloudera-scm-agent restart

  4. 如果您的Hue服务使用嵌入式SQLite数据库,请还原您备份的数据库:
    1. 停止Hue服务。
    2. 将备份从临时位置复制到新创建的Hue数据库目录中,/var/lib/hue。
    3. 启动Hue服务。

步骤9:完成HDFS元数据升级

本节中的步骤仅需进行以下升级:

CDH 5.0或5.1至5.2或更高
CDH 5.2或5.3至5.4或更高


要确定是否可以完成,请以important workloads运行以确保它们能成功。一旦升级完成后,将无法使用备份即无法回滚到先前版本的HDFS。验证您是否已完成升级可能需要很长时间。

请确保您有足够的可用磁盘空间,请记住以下行为,直到升级完成:

  • 删除文件不会释放磁盘空间。
  • 使用balancer会导致所有移动的副本被复制。
  • 表示NameNodes元数据的所有磁盘数据都被保留,这可以将NameNode和JournalNode磁盘所需的空间大小增加一倍。

要完成元数据升级:

  • 转到HDFS服务。
  • 单击Instances选项卡。
  • 单击NameNode实例。
  • 选择Actions>Finalize Metadata Upgrade,然后单击 Finalize Metadata Upgrade以确认。

    步骤10:退出维护模式

    如果在此升级期间进入维护模式,请退出维护模式。